package edu.sias.article.entity;

import edu.sias.article.entity.Comment;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 文章实体类，用于封装文章的相关信息
 */
//@Data
//@AllArgsConstructor
//@NoArgsConstructor
public class Article {
    /**
     * 文章的唯一标识符
     */
    private Long id;
    /**
     * 文章标题
     */
    private String title;
    /**
     * 文章内容
     */
    private String content;
    /**
     * 文章的作者ID
     */
    private Long userId;
    /**
     * 文章的评论列表
     */
    private List<Comment> comments = new ArrayList<>();

    /**
     * 无参构造函数
     */
    public Article() {
    }

    /**
     * 带参构造函数，用于初始化文章的标题和内容
     * @param title 文章标题
     * @param content 文章内容
     */
    public Article(String title, String content) {
        this.title = title;
        this.content = content;
    }

    /**
     * 获取文章的唯一标识符
     * @return 文章的唯一标识符
     */
    public Long getId() {
        return id;
    }

    /**
     * 设置文章的唯一标识符
     * @param id 文章的唯一标识符
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取文章标题
     * @return 文章标题
     */
    public String getTitle() {
        return title;
    }

    /**
     * 设置文章标题
     * @param title 文章标题
     */
    public void setTitle(String title) {
        this.title = title;
    }

    /**
     * 获取文章内容
     * @return 文章内容
     */
    public String getContent() {
        return content;
    }

    /**
     * 设置文章内容
     * @param content 文章内容
     */
    public void setContent(String content) {
        this.content = content;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    /**
     * 获取文章的评论列表
     * @return 文章的评论列表
     */
    public List<Comment> getComments() {
        return comments;
    }

    /**
     * 向文章添加一条评论
     * @param comment 评论对象
     */
    public void addComment(Comment comment) {
        comments.add(comment);
    }
}    